﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;

namespace HigLabo.Net.Twitter
{
    public partial class TwitterClient
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="callback"></param>
        public void GetMentionsTimeline(Action<StatusCollection> callback)
        {
            this.GetMentionsTimeline(null as GetMentionsTimelineCommand, callback);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="command"></param>
        /// <param name="callback"></param>
        public void GetMentionsTimeline(GetMentionsTimelineCommand command, Action<StatusCollection> callback)
        {
            this.GetResultText(TwitterApiUrl.Version1_1.Statuses.MentionsTimelineJson, command, text => callback(new StatusCollection(text)));
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="callback"></param>
        public void GetUserTimeline(Action<StatusCollection> callback)
        {
            this.GetUserTimeline(null as GetUserTimelineCommand, callback);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="command"></param>
        /// <param name="callback"></param>
        public void GetUserTimeline(GetUserTimelineCommand command, Action<StatusCollection> callback)
        {
            this.GetResultText(TwitterApiUrl.Version1_1.Statuses.UserTimelineJson, command, text => callback(new StatusCollection(text)));
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="callback"></param>
        public void GetHomeTimeline(Action<StatusCollection> callback)
        {
            this.GetHomeTimeline(null as GetHomeTimelineCommand, callback);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="command"></param>
        /// <param name="callback"></param>
        public void GetHomeTimeline(GetHomeTimelineCommand command, Action<StatusCollection> callback)
        {
            this.GetResultText(TwitterApiUrl.Version1_1.Statuses.HomeTimelineJson, command, text => callback(new StatusCollection(text)));
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="callback"></param>
        public void GetRetweetsOfMeTimeline(Action<StatusCollection> callback)
        {
            this.GetRetweetsOfMeTimeline(null as GetRetweetsOfMeTimelineCommand, callback);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="command"></param>
        /// <param name="callback"></param>
        public void GetRetweetsOfMeTimeline(GetRetweetsOfMeTimelineCommand command, Action<StatusCollection> callback)
        {
            this.GetResultText(TwitterApiUrl.Version1_1.Statuses.RetweetsOfMeJson, command, text => callback(new StatusCollection(text)));
        }
    }
}
